/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package desarrollosoft.ghce.vista.implementaciones;

import desarrollosoft.ghce.entidades.AntecedentePatologico;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.zkoss.zul.Label;
import org.zkoss.zul.Listcell;
import org.zkoss.zul.Listitem;
import org.zkoss.zul.ListitemRenderer;

/**
 *
 * @author ariel
 */
public class RenderAntecedentesPatologicos implements ListitemRenderer {

    private SimpleDateFormat formateador;
    
    public RenderAntecedentesPatologicos() {
        formateador = new SimpleDateFormat("dd/MM/yyyy");
    }
    
    @Override
    public void render(Listitem listitem, Object data, int index) throws Exception {
        
        AntecedentePatologico antecedente = (AntecedentePatologico) data;
        /* seteo el valor para el item: importante sin esto no puedo obtener el seleccionado de la lista */
        listitem.setValue(antecedente);
        
        Listcell celda = new Listcell();
        listitem.appendChild(celda);
        celda.appendChild(new Label(formateador.format(antecedente.getFecha())));
        
        celda = new Listcell();
        listitem.appendChild(celda);
        celda.appendChild(new Label(antecedente.getDiagnostico().getNombre()));
        
        celda = new Listcell();
        listitem.appendChild(celda);
        celda.appendChild(new Label(String.valueOf( antecedente.getEdadEnElMomento() )));
        
        celda = new Listcell();
        listitem.appendChild(celda);
        Label label = new Label( antecedente.getGravedad().getNombre() );
        
        switch (antecedente.getGravedad().getValor()) {
            case 0: // Ninguna
                break;
            case 1: // Baja
                label.setStyle("color:black");
                celda.setStyle("background:green");
                break;
            case 2: // Media
                label.setStyle("color:black");
                celda.setStyle("background:yellow");
                break;
            case 3: // Alta
                label.setStyle("color:black");
                celda.setStyle("background:red");
                break;
        }
        celda.appendChild(label);
        
        celda = new Listcell();
        listitem.appendChild(celda);
        Date fechaFin = antecedente.getFechaFin();
        if (fechaFin != null) {
            celda.appendChild(new Label(formateador.format(fechaFin)));
        } else {
            celda.appendChild(new Label("-"));
        }
    }
    
}
